#include <dao.h>

#include "btDbvtBroadphase.h"
#include "btCollisionConfiguration.h"
#include "btDefaultCollisionConfiguration.h"
#include "btDispatcher.h"
#include "btCollisionDispatcher.h"
#include "btConstraintSolver.h"
#include "btSequentialImpulseConstraintSolver.h"
#include "btDiscreteDynamicsWorld.h"
#include "btVector3.h"
#include "btCollisionShape.h"
#include "btStaticPlaneShape.h"
#include "btSphereShape.h"
#include "btQuaternion.h"
#include "btTransform.h"
#include "btMotionState.h"
#include "btDefaultMotionState.h"
#include "btRigidBodyConstructionInfo.h"
#include "btRigidBody.h"
#include "btClock.h"

DAO_INIT_MODULE;

int DaoOnLoad(DaoVmSpace *vms, DaoNameSpace *ns) {
    DaoTypeBase *typers[] = {
	&btDbvtBroadphaseTyper,
	&btCollisionConfigurationTyper,
	&btDefaultCollisionConfigurationTyper,
	&btDispatcherTyper,
	&btCollisionDispatcherTyper,
	&btConstraintSolverTyper,
	&btSequentialImpulseConstraintSolverTyper,
	&btDiscreteDynamicsWorldTyper,
	&btVector3Typer,
	&btCollisionShapeTyper,
	&btStaticPlaneShapeTyper,
	&btSphereShapeTyper,
	&btQuaternionTyper,
	&btTransformTyper,
	&btMotionStateTyper,
	&btDefaultMotionStateTyper,
	&btRigidBodyConstructionInfoTyper,
	&btRigidBodyTyper,
	&btClockTyper,
        NULL
    };

    DaoNameSpace_WrapTypes(ns, typers);

    return 0;
};
